5da6238ef193095b4916afdf11a104616002ca15,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/GroovyParser.java,GroovyParser,parseIfStatement,#PsiBuilder#,126
Before Change
builder.advanceLexer();
builder.error(GroovyBundle.message("rparen.expected"));
}
if (!ParserUtils.getToken(builder, GroovyTokenTypes.mRPAREN)) {
ifStmtMarker.done(IF_STATEMENT);
return true;
}
}
PsiBuilder.Marker warn = builder.mark();
if (builder.getTokenType() == GroovyTokenTypes.mNLS) {
ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
}
if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
warn.rollbackTo();
builder.error(GroovyBundle.message("expression.expected"));
ifStmtMarker.done(IF_STATEMENT);
return true;
} else {
warn.drop();
}
PsiBuilder.Marker rb = builder.mark();
if (GroovyTokenTypes.kELSE.equals(builder.getTokenType()) ||
(Separators.parse(builder) &&
builder.getTokenType() == GroovyTokenTypes.kELSE)) {
rb.drop();
ParserUtils.getToken(builder, GroovyTokenTypes.kELSE);
warn = builder.mark();
if (builder.getTokenType() == GroovyTokenTypes.mNLS) {
ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
}
if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
After Change
ParserUtils.getToken(builder, GroovyTokenTypes.mRPAREN, GroovyBundle.message("rparen.expected"));
PsiBuilder.Marker warn = builder.mark();
ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
warn.rollbackTo();
builder.error(GroovyBundle.message("expression.expected"));
ifStmtMarker.done(IF_STATEMENT);
return true;
}
else {
warn.drop();
}
PsiBuilder.Marker rb = builder.mark();
if (GroovyTokenTypes.kELSE.equals(builder.getTokenType()) ||
(Separators.parse(builder) && builder.getTokenType() == GroovyTokenTypes.kELSE)) {
rb.drop();
ParserUtils.getToken(builder, GroovyTokenTypes.kELSE);
warn = builder.mark();
ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
warn.rollbackTo();